package threadpool.executors;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class T06_02_CachedThreadPool {
    public static void main(String[] args) {
        //内部的任务队列由SynchronousQueue实现
        // 根据SynchronousQueue的0容量特点，可以知道，任务不会被堆积到队列中，而是进一个任务就要开启一个新的线程去处理
        //而且它允许开启的最大线程数为 Integer.MAX_VALUE
        //如果实际业务中真的会堆积超级多的线程的话，不建议使用此种，否则容易线程过多造成OOM
        ExecutorService executorService = Executors.newCachedThreadPool();
        executorService.submit(() -> {
            System.out.println("123");
        });
        executorService.submit(() -> {
            System.out.println("123");
        });
        executorService.submit(() -> {
            System.out.println("123");
        });
        System.out.println(executorService);
    }
}
